package nl.fontys.sofa.limo.view.wizard.types.leg;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.ArrayList;
import java.util.List;
import javax.swing.JPanel;
import nl.fontys.sofa.limo.api.service.provider.LegTypeService;
import nl.fontys.sofa.limo.domain.component.type.LegType;
import nl.fontys.sofa.limo.view.util.LIMOResourceBundle;
import org.openide.util.Lookup;
/**
* Selection for New or Copy LegType Panel
*
* @author Pascal Lindner
*/
public final class NewOrDuplicatedLegTypePanel extends JPanel {
private List<LegType> lt;
public NewOrDuplicatedLegTypePanel() {
initComponents();
}
@Override
public String getName() {
return LIMOResourceBundle.getString("LEG_TYPE");
}
/**
* This method is called from within the constructor to initialize the form.
* WARNING: Do NOT modify this code. The content of this method is always
* regenerated by the Form Editor.
*/
private void initComponents() {
buttonGroup1 = new javax.swing.ButtonGroup();
rbFromScratch = new javax.swing.JRadioButton();
rbCopyFrom = new javax.swing.JRadioButton();
cmbLegType = new javax.swing.JComboBox();
setLayout(new GridBagLayout());
GridBagConstraints c = new GridBagConstraints();
c.fill = GridBagConstraints.HORIZONTAL;
c.weightx = 1;
c.gridx = 0;
c.gridy = 0;
buttonGroup1.add(rbFromScratch);
rbFromScratch.setText(LIMOResourceBundle.getString("FROM_SCRATCH"));
add(rbFromScratch, c);
rbFromScratch.setSelected(true);
buttonGroup1.add(rbCopyFrom);
rbCopyFrom.setText(LIMOResourceBundle.getString("COPY_EXISTING"));
c.weightx = 1;
c.gridx = 0;
c.gridy = 1;
add(rbCopyFrom, c);
addActionListener();
LegTypeService legTypeService = Lookup.getDefault().lookup(LegTypeService.class);
lt = legTypeService.findAll();
List<String> legTypeList = new ArrayList<>();
lt.stream().forEach((lt2) -> {
legTypeList.add(lt2.getName());
});
cmbLegType.setModel(new javax.swing.DefaultComboBoxModel(legTypeList.toArray()));
c.weightx = 1;
c.gridx = 0;
c.gridy = 2;
add(cmbLegType, c);
cmbLegType.setEnabled(false);
if (lt.isEmpty()) {
rbCopyFrom.setEnabled(false);
cmbLegType.setEditable(false);
}
}
//Set Action Listener
public void addActionListener() {
rbFromScratch.addActionListener((ActionEvent e) -> {
if (rbFromScratch.isSelected()) {
cmbLegType.setEnabled(false);
}
});
rbCopyFrom.addActionListener((ActionEvent e) -> {
if (rbCopyFrom.isSelected()) {
cmbLegType.setEnabled(true);
}
});
}
public LegType getLegType() {
if (rbCopyFrom.isSelected()) {
return lt.get(cmbLegType.getSelectedIndex());
} else {
return null;
}
}
private javax.swing.ButtonGroup buttonGroup1;
private javax.swing.JRadioButton rbFromScratch;
private javax.swing.JRadioButton rbCopyFrom;
private javax.swing.JComboBox cmbLegType;
}